import { Component } from '@angular/core';
import { Router } from '@angular/router';
//import { MainData,MenuData} from './main.model';

//菜单数据
export class MenuData {
  //ID
  id: number;
  //父ID
  parentId: number;
  //名称
  name: string;
  //是否展开
  isExpend?: boolean;
  //URL
  url?:string;
  //子节点
  children?: Array<MenuData>;
}

//Menu菜单数据
const MENUS: MenuData[] = [
  //用户管理
  {
    id: 1,
    parentId: 0,
    name: '用户管理',
    isExpend: false,
    children: [{
      id: 2,
      parentId: 1,
      name: '用户增加',
      url: '/user/userAdd',
    }, {
      id: 3,
      parentId: 1,
      name: '用户列表',
      url: '/user/userList',
    }]
  },
  //权限管理
  {
    id: 4,
    parentId: 0,
    name: '权限管理',
    isExpend: false,
    //角色管理
    children: [{
      id: 5,
      parentId: 4,
      name: '角色管理',
      children: [{
        id: 6,
        parentId: 5,
        name: '角色增加',
        url: '/role/roleAdd',
      }, {
        id: 7,
        parentId: 5,
        name: '角色列表',
        url: '/role/roleList',
      }]
    }]
  },
  //文章管理
  {
    id: 8,
    parentId: 0,
    name: '文章管理',
    children: [{
      id: 9,
      parentId: 8,
      name: '文章增加',
      url: '/post/postAdd',
    }, {
      id: 10,
      parentId: 8,
      name: '文章列表',
      url: '/post/postList',
    }]
  }
];

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Menu菜单测试';
  //获取菜单的数据
  menu = MENUS;
  
  /**
   * 构造方法
   */
  constructor(private router: Router) { }

  /**
   * 初始化
   */
  ngOnInit() {
  }
  /**
   * 是否有子节点
   * @param one 
   */
  isLeaf(one: MenuData) {
    return !one.children || !one.children.length;
  }
  /**
   * 点击
   * @param one 
   */
  itemClicked(one: MenuData) {
    if (!this.isLeaf(one)) {
      one.isExpend = !one.isExpend;
    } else {
      this.router.navigate([one.url]);
    }
  }

}
